package com.petshop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.petshop.dto.QueryPostDTO;
import com.petshop.pojo.Posts;
import com.petshop.utils.Result;

/**
 * @author 20289
 * @description 针对表【posts(存储用户发布的帖子信息)】的数据库操作Service
 * @createDate 2025-02-27 11:17:00
 */
public interface PostsService extends IService<Posts> {

    /**
     * 增加一条帖子
     *
     * @param posts
     * @return
     */
    Result insertPost(Posts posts  );

    /**
     * 删除一条帖子（根据id）
     *
     * @param postId
     * @return
     */
    Result deletePost(Integer postId);

    /**
     * 修改帖子
     *
     * @param posts
     * @return
     */
    Result updatePost(Posts posts);

    /**
     * 根据帖子id查询帖子
     *
     * @param postId
     * @return
     */
    Result queryPostById(Integer postId);

    /**
     * 获取帖子列表
     *
     * @param queryPostDTO
     * @return
     */
    Result getPostList(QueryPostDTO queryPostDTO);

    /**
     * 仅查询第一页帖子
     *
     * @param queryPostDTO
     * @return
     */
    Result getFirstPost(QueryPostDTO queryPostDTO);

    /**
     * 获取帖子详情，点赞数，评论数
     *
     * @param postId
     * @param token
     * @return
     */
    Result getPostDetail(Integer postId, String token);

    /**
     * 点赞
     * @param postId
     * @return
     */
    Result likePost(Integer postId);

    /**
     * 滚动查询关注的人的帖子
     * @param max
     * @param offset
     * @return
     */
    Result queryFollowPost(Long max, Integer offset);
}
